package com.skwyb.form.bean.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

@EqualsAndHashCode(callSuper = true)
@Data
@TableName("sys_form_field")
public class SysFormField extends BaseDto {

    /**
     * 表单类型(文本框，下拉框，单选框等)
     */
    private String fieldType;

    /**
     * 字段名称
     */
    private String fieldName;

    /**
     * 文本描述
     */
    private String fieldDesc;

    /**
     * 默认值
     */
    private String fieldDefault;

    /**
     * 数据类型(字符串，数字，小数等)
     */
    private String dataType;

    /**
     * 宽度
     */
    private Integer width;

    /**
     * 长度
     */
    private Integer length;

    /**
     * 是否必填
     */
    private String isRequired;

    /**
     * 是否允许重复
     */
    private String isRepeat;

    /**
     * 是否只读
     */
    private String isReadonly;

    /**
     * 字段可见性（数据字典）
     */
    private String fieldVisual;

    /**
     * 样式类
     */
    private String fieldClass;

    /**
     * 自定义样式
     */
    private String fieldStyle;

    /**
     * 其它正则表达式验证
     */
    @TableField("field_regular")
    private String fieldRegular;

    @TableField("min_length")
    private Integer minLength;

    @TableField("max_length")
    private Integer maxLength;

    /**
     * 关联数据字典
     */
    @TableField("data_dict")
    private String dataDict;

    /**
     * 所属模块表单主键
     */
    @TableField("module_id")
    private String moduleId;

    /**
     * 是否在列表页面显示
     */
    @TableField("is_list_view")
    private String isListView;

    /**
     * 字段排序号
     */
    @TableField("line_no")
    private Integer lineNo;

    @TableField("add_time")
    private String addTime;

    /**
     * 是否可以多选
     */
    @TableField("is_multiple")
    private String isMultiple;

    /**
     * 上级字段(用于多级联动）
     */
    @TableField("parent_id")
    private String parentId;
}